package tv.athena.live.api.link_mic

import com.yy.liveplatform.proto.nano.LpfLiveinterconnect
import tv.athena.live.api.IDataCallback

interface ILinkMicService {

    fun addLinkMicUnicastListener(listener: LinkMicUnicastListener)

    fun removeLinkMicUnicastListener(listener: LinkMicUnicastListener)

    interface LinkMicUnicastListener {
        /**
         * 收到邀请连麦单播
         */
        fun onInviteLiveInterconnect(info: LpfLiveinterconnect.InviteLiveInterconnectUnicast)

        /**
         * 回复邀请连麦单播
         */
        fun onInviteLiveInterconnectResult(
            info: LpfLiveinterconnect.InviteLiveInterconnectResultUnicast
        )

        /**
         * 断开连麦单播
         */
        fun onLiveInterconnectEnd(info: LpfLiveinterconnect.LiveInterconnectEndUnicast)

        /**
         * 连麦申请列表变化单播
         */
        fun onApplyConnectListUpdated(info: LpfLiveinterconnect.ApplyConnectUpdateUnicast)
    }

    fun refuseInviteLiveInterconnectReq(
            sid: Long,
            replyInviteUserInfo: LpfLiveinterconnect.LiveInterconnectInfo,
            businessType: Int,
            position: IntArray = intArrayOf(),
            isAutoReject: Boolean = false,
            callBack: IDataCallback<LpfLiveinterconnect.ReplyInviteLiveInterconnectResp>?
    )
}